/**
*
*/
package de.yaams.extensions.rgssproject.map.nevent.command;
import org.jruby.RubyHash;
import org.jruby.RubyObject;
import de.yaams.extensions.jruby.RubyHelper;
import de.yaams.extensions.rgssproject.database.SystemGObject;
import de.yaams.extensions.rgssproject.database.form.RubyForm;
import de.yaams.extensions.rgssproject.map.nevent.core.EventCode;
import de.yaams.extensions.rgssproject.map.nevent.core.EventCommand;
import de.yaams.maker.helper.JavaHelper;
import de.yaams.maker.helper.gui.form.FormComboBox;
import de.yaams.maker.helper.gui.form.FormHelper;
import de.yaams.maker.helper.gui.form.FormInfo;
import de.yaams.maker.helper.gui.form.core.FormBuilder;
import de.yaams.maker.helper.gui.form.core.FormHeader;
import de.yaams.maker.helper.language.I18N;
/**
* @author abt
*
*/
public class MoveCommand extends EventCommand {
/**
* Create a new MoveCommand
*/
public MoveCommand() {
installMultipleIDSupport(new String[] { "Move ", "Wait for Moving" }, JavaHelper.numAry(209, 210));
beta = true;
}
/*
* (non-Javadoc)
*
* @see
* de.yaams.extensions.map.nevent.core.EventCommand#getTitle(de.yaams.extensions
* .map.nevent.core.EventCode)
*/
@Override
protected String getInternTitle(EventCode e) {
if (e.getId() == 210) {
return titles[1];
}
addInt(e, 0, -1);
String s = e.getParameters().get(0).toString();
// player?
if (RubyHelper.toInt(e.getParameters().get(0)) == -1) {
s = "Player";
// has a map?
} else {
RubyObject map = e.getYecl().getMap();
if (map != null) {
// get all events
RubyHash ra = (RubyHash) map.getInstanceVariable("@events");
s = new SystemGObject((RubyObject) ra.get(e.getParameters().get(0))).getName();
}
}
return I18N.t("Move {0}", s);
}
/*
* (non-Javadoc)
*
* @see de.yaams.extensions.map.nevent.core.EventCommand#getIcon()
*/
@Override
public String getIcon() {
return "move";
}
/*
* (non-Javadoc)
*
* @see
* de.yaams.extensions.map.nevent.core.EventCommand#getIcon(de.yaams.extensions
* .map.nevent.core.EventCode)
*/
@Override
public Object getIcon(EventCode e) {
if (e.getId() == 210) {
return getIcon() + "_wait";
}
return getIcon();
}
/*
* (non-Javadoc)
*
* @see de.yaams.extensions.map.nevent.core.EventCommand#getStartParameter()
*/
@Override
public String getStartParameter() {
return "-1,RPG::MoveRoute.new";
}
/*
* (non-Javadoc)
*
* @see de.yaams.extensions.map.nevent.core.EventCommand#getName()
*/
@Override
public String getName() {
return I18N.t("Move Event");
}
/*
* (non-Javadoc)
*
* @see de.yaams.extensions.map.nevent.core.EventCommand#getGroup()
*/
@Override
public String getGroup() {
return I18N.t("Event");
}
/*
* (non-Javadoc)
*
* @see
* de.yaams.extensions.map.nevent.core.EventCommand#buildPanel(de.yaams.
* core.helper.gui.form.core.FormBuilder,
* de.yaams.extensions.map.nevent.core.EventCode)
*/
@Override
public void buildPanel(FormBuilder f, EventCode e) {
addInt(e, 0, -1);
FormComboBox c = addIDSwichter(f, e);
// add basic
f.addHeader("move", new FormHeader(titles[0], "move"));
f.addElement("move.player",
FormHelper.setEnabeldWhenRightElementSelect(c, RubyForm.getEventSelector("Player", e.getYecl().getMap(), e.getParameters(), 0), "209"));
// f.addElement("basic.repeat",
// RubyForm.getBoolean(I18N.t("Repeat Move"), e.getParameters().get(1),
// "@repeat"));
// f.addElement("basic.moves",
// RubyForm.getBoolean(I18N.t("Ignore impossible moves"),
// e.getParameters().get(1), "@skippable")
// .setSorting(1));
// unsupported
f.addHeader("unsupported", new FormHeader(I18N.t("Nicht unterstützt"), "error").setCollapsed(true));
f.addElement("unsupported.ele", new FormInfo("", I18N.t("Movement route")));
}
}